// Package main 应用程序的入口包
package main

import (
	"log"
	"windsurf-project/internal/bootstrap"
	"windsurf-project/internal/infrastructure/database"
)

// main 应用程序的主入口函数
// 负责初始化和配置应用程序的各个组件
func main() {
	// 初始化数据库连接
	db := database.NewDB()

	// 初始化仓储层
	// userRepo := repository.NewMySQLUserRepository(db)
	repos := bootstrap.NewRepositories(db)

	// 初始化领域服务层
	// userDomainService := service.NewUserDomainService(userRepo)
	services := bootstrap.NewDomainServices(repos)

	// 初始化应用服务层
	// userAppService := application.NewUserAppService(userDomainService)
	apps := bootstrap.NewApplications(services)

	// 初始化处理器
	// userHandler := handlers.NewUserHandler(userAppService)
	handlers := bootstrap.NewHandlers(apps)

	// 初始化和配置路由器
	// router := bootstrap.NewRouter(userHandler)
	router := bootstrap.NewRouter(handlers)

	// 启动服务器
	log.Println("服务器启动于 :8080...")
	if err := router.Run(":8080"); err != nil {
		log.Fatalf("启动服务器失败: %v", err)
	}
}
